﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SlideShow.Models;

namespace SlideShow.Controllers
{
 


    public class InscripcionController : Controller
    {

        private List<Inscripcion> CrearInscripcion()
        {
            Usuario usuario_edson = new Usuario() { Email = "edson@hotmail.com", Nombre = "Edson", Apellido = "Menendez", Carrera = "ING. de Sistemas", Ocupacion = "Webmaster" };
            //Usuario renzoburga = new Usuario() { Email = "renburga@gmail.com", Nombre = "renzo", Apellido = "burga", Carrera = "ING. ELECTRONICA", Ocupacion = "DIRECTOR DE PROCESOS" };
            //Usuario jorgecaselli = new Usuario() { Email = "jorgecaselli@gmail.com", Nombre = "jorge", Apellido = "caselli", Carrera = "ING.DE SISTEMAS", Ocupacion = "JEFE DE SISTEMAS" };
            //Usuario paulaarana = new Usuario() { Email = "renburga@gmail.com", Nombre = "Paul", Apellido = "ARANA", Carrera = "ING. REDES", Ocupacion = "ASISTENTE DE REDES" };
            MdlCursos SeguridadBombas = new MdlCursos() { id = 1, nombre = "Seguridad en Bombas C.I", tipo = "Ingeniería", responsable = "Edson Menendez", duracionHoras = 30, preRequisito = "tecnología B.C.I" };
            MdlCursos Android = new MdlCursos() { id = 2, nombre = "Android", tipo = "Ingeniería", responsable = "Alberto Valiente", duracionHoras = 30, preRequisito = "tecnología B.C.I" };
            MdlCursos CCHAR = new MdlCursos() { id = 3, nombre = "C#", tipo = "Ingeniería", responsable = "Cesar Garrido Leca", duracionHoras = 30, preRequisito = "Algoritmia" };
            List<Inscripcion> inscripcion = new List<Inscripcion>();
            inscripcion.Add(new Inscripcion() { codigo = 1, usuario = usuario_edson, Cursos = SeguridadBombas, instructor = "Hector", horas = "80", fecha_inicio="10/07/12" });
            inscripcion.Add(new Inscripcion() { codigo = 2, usuario = usuario_edson, Cursos = Android, instructor = "Lenon", horas = "80", fecha_inicio = "25/07/12" });
            //inscripcion.Add(new Inscripcion() { codigo = 3, usuario = paulaarana, Cursos = CCHAR, instructor = "david", horas = "80", fecha_inicio = "15/07/12" });

            return inscripcion;
        }


        private Inscripcion ObtenerInscripcion(int codigo)
        {
            List<Inscripcion> inscripciones = (List<Inscripcion>)Session["inscripcion"];
            Inscripcion model = inscripciones.Single(delegate(Inscripcion inscripcion)
            {
                if (inscripcion.codigo == codigo) return true;
                else return false;
            });
            return model;
        }



        //
        // GET: /Inscripcion/

        public ActionResult Index()
        {
            if (Session["inscripcion"] == null)
                Session["inscripcion"] = CrearInscripcion();
            List<Inscripcion> model = (List<Inscripcion>)Session["inscripcion"];
            return View(model);
        }

        //
        // GET: /Inscripcion/Details/5

        public ActionResult Details(int id)
        {
            Inscripcion model = ObtenerInscripcion(id);
            return View(model);
        }

        //
        // GET: /Inscripcion/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /Inscripcion/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here
                List<Inscripcion> inscripciones = (List<Inscripcion>)Session["inscripcion"];
                inscripciones.Add(new Inscripcion()
                {
                    codigo = int.Parse(collection["Codigo"]),
                        usuario = new Usuario()
                    {
                        Email= collection["Usuario.Email"],
                        Nombre = collection["Usuario.Nombre"]
                    },
                    Cursos= new MdlCursos()
                     {
                        id= int.Parse(collection["Cursos.id"]),
                        nombre = collection["Cursos.nombre"]
                    },
                    instructor = collection["Instructor"],
                    horas = collection["Horas del Curso"],
                    fecha_inicio = collection["30/07/2012"]

                });

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        
        //
        // GET: /Inscripcion/Edit/5
 
        public ActionResult Edit(int id)
        {
            Inscripcion model = ObtenerInscripcion(id);
            return View(model);
        }

        //
        // POST: /Inscripcion/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {                // TODO: Add update logic here
                Inscripcion model = ObtenerInscripcion(id);
                model.instructor = collection["instructor"];
                model.horas= collection["horas"];
                model.fecha_inicio = collection["fecha_inicio"];
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Inscripcion/Delete/5
 
        public ActionResult Delete(int id)
        {
            Inscripcion model = ObtenerInscripcion(id);
            return View(model);
        }

        //
        // POST: /Inscripcion/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                List<Inscripcion> inscripciones = (List<Inscripcion>)Session["inscripcion"];
                inscripciones.Remove(ObtenerInscripcion(id));
                 return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
        }
    }

